package com.zk.iotgateway.bizhandler;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;

import java.util.List;

/**
 *
 * netty 业务接口
 * 包含 编码解码 业务处理 转发的mq
 * @author:mn.m
 * @create 2019-07-03 下午 02:34
 **/
public interface IHandler {

    /**
     * @Author mn
     * @Description  编码业务处理方法
     * @Date 上午 09:28 2019/7/3 0003
     * @Param
     * @return
     **/
    public void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception;

    /**
     * @Author mn
     * @Description 解码业务方法
     * @Date 上午 09:28 2019/7/3 0003
     * @Param
     * @return
     **/
    public void decode(ChannelHandlerContext ctx, ByteBuf in, List out) throws Exception;

    /**
     * @Author mn
     * @Description 管道消息处理方法
     * @Date 下午 02:37 2019/7/3 0003
     * @Param  ctx msg
     * @return void
     **/
    public void handle(ChannelHandlerContext ctx, Object msg) throws Exception;

    /**
     * @Author mn
     * @Description 转发到消息队列
     * @Date 下午 02:39 2019/7/3 0003
     * @Param
     * @return
     **/
    public void dispatchMq(ChannelHandlerContext ctx, Object msg) throws Exception;

    /**
     * @Author mn
     * @Description 获取网关开放的端口
     * @Date 下午 02:45 2019/7/3 0003
     * @Param
     * @return
     **/
    public String returnServerPort(ChannelHandlerContext ctx) throws Exception;


}
